import fetch from '../../utils/fetch';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    sShowCollege:0,
    tip:'',     //提示词，当搜索没有结果时要提示
    collegeArr:[],  //以获取的大学数据的列表
    currentArr:[],  //当前用于展示的大学列表
    keyword: '',    //输入框输入的关键数据
    page:1,        //有搜索框输入的向数据库获取匹配数据的搜索，第几次从数据库获取数据，便于从数据库获取中跳过前面以获取的数据
    count:0,  //有关键字的大学总数
  },
  size:20,    //每次获取二十条数据
  page:1,         //第几次从数据库获取数据，便于从数据库获取中跳过前面以获取的数据
  count:false, //大学总数
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    //获取初始大学数据
    var that = this;
    fetch('/college/list',{
      page:this.page,
      keyword:'',
      size:this.size
    }).then(res=>{
      res.data.collegeArr.forEach(item=>{
        that.data.collegeArr.push(item.college);
      });
      that.setData({
        collegeArr:this.data.collegeArr,
        currentArr:this.data.collegeArr,
      });
      this.count = res.data.count;
    }).catch(err=>{
      this.onLoad()
    })
  },
   //显示大学列表
   displayList(){
    this.setData({
      isShowCollege:1,
    })
  },
  // 滚动获取更多
  getMoreData(){
    var that = this;
    if(this.data.keyword && (this.data.page*this.size < this.data.count)){
      fetch('college/getList',{
        keyword: that.data.keyword,
        size:that.size,
        page:++that.data.page
      }).then(res=>{
        res.data.collegeArr.forEach(item=>{
          this.data.currentArr.push(item.college);
        });
        this.setData({
          currentArr:this.data.currentArr
        });
      });
      return ;
    }
    if(this.data.keyword === '' && (this.page * this.size < this.count)){
      fetch('/college/list',{
        keyword: '',
        size:that.size,
        page:++that.page
      }).then(res=>{
        res.data.collegeArr.forEach(item=>{
          that.data.collegeArr.push(item.college);
        });
        that.setData({
          collegeArr:this.data.collegeArr,
          currentArr:this.data.collegeArr
        })
      });
      return ;
    }
  },
  //防抖，当输入完成后再触发搜索
  timer:null,
  //搜索大学
  searchCollege(e){
    clearTimeout(this.timer);
    this.timer = setTimeout(()=>{
      this.showMatch(e.detail.value);
    },300);
  },
  showMatch(matchWord){
    console.log(matchWord);
    this.data.page = 1;
    this.data.count = 0;
    this.data.keyWord = matchWord;
    if(matchWord === ''){
      this.setData({
        tip:'',
        currentArr:this.data.collegeArr
      });
      return ;
    }
    else{
      //从数据库里面查找
      var that = this;
      fetch('/college/list',{
        keyword: matchWord,
        size:that.size,
        page:that.data.page
      }).then(res=>{
        const data = res.data;
        let tempArr = [];
        data.collegeArr.forEach(item=>{
          tempArr.push(item.college);
        })
        if(tempArr.length === 0){
          that.setData({
            tip:'找不到该大学，请重新搜索！！！',
            currentArr:tempArr,
            count:data.count
          })
        }
        else{
          that.setData({
            currentArr:tempArr,
            tip:'',
            count:data.count
          })
        }
      }).catch(err=>{
        this.showMatch(matchWord);
      })
    }
  },
  //选择大学
  selected:function(e){
    const pages = getCurrentPages();
    const prePage = pages[pages.length - 2];
    prePage.setData({
      'userinfo.college':e.currentTarget.dataset.college
    });
    wx.navigateBack();
  },
})